#!/bin/bash

# CRMEB 前端项目启动脚本

echo "================================"
echo "CRMEB 前端项目启动脚本"
echo "================================"
echo ""

# 获取脚本所在目录的绝对路径
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# 前端项目根目录
FRONTEND_DIR="$SCRIPT_DIR/../trading-center-front"

# 检查前端目录是否存在
if [ ! -d "$FRONTEND_DIR" ]; then
    echo "❌ 错误：找不到前端项目目录"
    echo "   预期路径: $FRONTEND_DIR"
    exit 1
fi

cd "$FRONTEND_DIR" || exit 1
echo "📁 工作目录: $(pwd)"
echo ""

# 检查 node_modules 是否存在
if [ ! -d "node_modules" ]; then
    echo "⚠️  未检测到 node_modules 目录"
    echo "   正在安装依赖..."
    npm install --registry=https://registry.npmmirror.com
    echo ""
fi

# 检查环境配置文件
if [ ! -f ".env.development" ]; then
    echo "⚠️  未检测到 .env.development 文件"
    echo "   正在创建默认配置..."
    cat > .env.development << 'ENVEOF'
# 开发环境配置
NODE_ENV = development

# 基础路径
NUXT_BASE_URL = /

# API 接口地址（后端 Front 服务）
NUXT_API_BASE = http://localhost:8081

# API 前缀
NUXT_API_PREFIX = /api/front

# 客户端类型
NUXT_CLIENT = pc

# 版本号
NUXT_VERSION = 1.0.0
ENVEOF
    echo "✅ 环境配置文件已创建"
    echo ""
fi

# 检查后端服务是否运行
echo "1. 检查后端服务状态..."
BACKEND_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8081 2>/dev/null)

if [ "$BACKEND_STATUS" != "000" ] && [ -n "$BACKEND_STATUS" ]; then
    echo "✅ 后端服务 (端口 8081) 正在运行"
else
    echo "⚠️  后端服务 (端口 8081) 未运行"
    echo "   前端需要连接后端 API，请先启动后端服务："
    echo "   cd $SCRIPT_DIR && ./start-dev.sh"
    echo ""
    read -p "是否继续启动前端？(y/n): " continue_choice
    if [ "$continue_choice" != "y" ] && [ "$continue_choice" != "Y" ]; then
        echo "已取消启动"
        exit 0
    fi
fi

echo ""
echo "2. 选择启动方式："
echo "   1) npm run dev (使用 npm，默认端口 3000)"
echo "   2) pnpm dev (使用 pnpm，推荐)"
echo "   3) 构建生产版本 (npm run build)"
echo "   4) 生成静态页面 (npm run generate)"
echo ""
read -p "请选择 [1-4]: " choice

case $choice in
    1)
        echo ""
        echo "🚀 使用 npm 启动开发服务器..."
        echo "================================"
        echo "访问地址："
        echo "前端页面: http://localhost:3000"
        echo "后端 API: http://localhost:8081"
        echo "Swagger: http://localhost:8081/doc.html"
        echo "================================"
        echo ""
        npm run dev
        ;;
    2)
        echo ""
        # 检查 pnpm 是否安装
        if ! command -v pnpm &> /dev/null; then
            echo "⚠️  未检测到 pnpm，正在安装..."
            npm install -g pnpm
            echo ""
        fi
        echo "🚀 使用 pnpm 启动开发服务器..."
        echo "================================"
        echo "访问地址："
        echo "前端页面: http://localhost:3000"
        echo "后端 API: http://localhost:8081"
        echo "Swagger: http://localhost:8081/doc.html"
        echo "================================"
        echo ""
        pnpm dev
        ;;
    3)
        echo ""
        echo "🔨 构建生产版本..."
        npm run build
        echo ""
        echo "✅ 构建完成！"
        echo "生成文件位置: .output/"
        echo ""
        read -p "是否启动生产服务器？(y/n): " start_prod
        if [ "$start_prod" = "y" ] || [ "$start_prod" = "Y" ]; then
            echo "🚀 启动生产服务器（端口 6100）..."
            npm run start
        fi
        ;;
    4)
        echo ""
        echo "🔨 生成静态页面..."
        npm run generate
        echo ""
        echo "✅ 生成完成！"
        echo "静态文件位置: .output/public/"
        ;;
    *)
        echo "无效选择，退出"
        exit 1
        ;;
esac
